package com.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.pojo.parent.CustomLocalDateTimeDeserializer;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * <p>
 * 用户消息记录
 * </p>
 *
 * @author hewei
 * @since 2023-10-21
 */
@Data
@TableName("im_message_record")
public class ImMessageRecordEntity{

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.ASSIGN_ID )
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 聊天标识
     */
    private String chatIdentifier;

    /**
     * 消息接收人id
     */
    private Long recipientId;

    /**
     * 请求人
     */
    private Long requestId;

    /**
     * 消息请求类型 0：心跳类型   1：发送文本消息类型
     */
    private String msgType;

    /**
     * 消息内容
     */
    private String body;

    /**
     * 消息发送时间
     */
    private LocalDateTime requestDate;

    /**
     * 是否已读 0：未读  1：已读
     */
    private String isRead;

    /**
     * 当前接收时间 用于判断消息唯一性，避免重复存储
     */
    @TableField("`current_time`")
    private String currentTime;

    /**
     * 创建时间
     */
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    @JsonSerialize(using = CustomLocalDateTimeDeserializer.class)
    private LocalDateTime createTime;


}
